[レポート] 統制されたAWS基盤構築のためのハンズオンレシピ - AWS Control TowerとIAM Identity Center #AWSreInvent
こんにちは、ゲーソルの新屋です。
re:Invent2024のセッションレポートをお届けします。
セッション情報
タイトル
- Accelerated hands-on recipes for building strong cloud foundations SMB308-R1
セッションタイプ
- Builders' session
スピーカー
- Sinisha Mikashinovich, Senior Solutions Architect, AWS
- Prashanth Ganapathy, Sr. Solutions Architect, Amazon
- Lavanya Bandari, Sr. Solutions Architect, Amazon
- Pablo Redondo Sanchez, Principal Solutions Architect, AWS
- Pawel Zawadzki, Sr. Solutions Architect, Amazon Web Services
セッション概要
Building robust cloud foundations is essential for agility, security, and cloud management, yet challenging for lean technical teams. Join this accelerated builders’ session to gain practical experience and proven strategies, refined through successful deployments in over 200 midsize businesses. Walk away with the critical knowledge and confidence to secure and scale your organization’s cloud infrastructure for growth and sustained success. During this session, explore AWS Control Tower, AWS Organizations, AWS IAM Identity Center, and linked services. You must bring your laptop to participate.
堅牢なクラウド基盤の構築は、俊敏性、セキュリティ、クラウド管理に不可欠ですが、リーンな技術チームにとっては困難です。本セッションに参加することで、200社以上の中堅企業における導入の成功を通じて磨かれた、実践的な経験と実証済みの戦略を学ぶことができます。クラウドインフラの安全性と拡張性を確保し、成長と持続的な成功を実現するための重要な知識と自信を得ることができます。このセッションでは、AWS Control Tower、AWS Organizations、AWS IAM Identity Center、およびリンクされたサービスについて説明します。参加にはノートパソコンが必要です。
内容
本セッションでは、AWS Control Towerを使ったAWS Organizationの構成設定と、AWSアカウントの作成およびIAM Identity Centerのシングルサインオンをワークショップ形式で学ぶことが出来ました。
具体的なシナリオは以下のとおりです。
レシピ1: ランディングゾーンの基本セットアップ
- 1.1 コントロールタワーのアカウント構造の拡張
- 1.2 既存のAWSアカウントを登録
レシピ2: ユーザーとアクセス管理
- 2.1 IAMアイデンティティセンターの紹介とMFA(多要素認証)
- 2.2 アカウントアクセスをユーザーに割り当てる
- 2.3 アカウントへのユーザーアクセスを確認する
レシピ3: セキュリティとコンプライアンスコントロール
- 3.1 コントロールライブラリの紹介
- 3.2 非準拠のS3バケットを検出
- 3.3 ルートアカウントを保護する
- 3.4 コンプライアンスステータスを確認する
レシピ4: 財務ガバナンス
- 4.1 組織のコストエクスプローラーサービスを有効化する
- 4.2 サンドボックスアカウントの予算上限を設定する
ポイント
Control Towerに既存のAWSアカウントをEnroll(登録)
既存のAWSアカウントにAWSControlTowerExecution
というロールを作成する必要があります。詳しくは以下のとおりです。
AWSControlTowerExecution ロール
- Permission: AdministratorAccess
- Trust Policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": Control Towerを実行するアカウントID
},
"Condition": {}
}
]
}
あとは、Control Towerを実行するアカウントに入り直して
Control Tower > OrganizationからEnrollすればOK
気になったこと(スピーカーに聞いてみた)
Q: AWSControlTowerExecutionロールは、AdministratorAccessじゃないといけないのか?最小権限の原則にもとづいて、適切なPermissionは無いのか?
A: はい、AdministratorAccessでないといけません。
Q: AWS Control TowerのAccount Factoryで作成したAWSアカウントは、AWSControlTowerExecutionが自動で作成されるか?
A: はい、作成されます。今回のワークショップは、既にあるAWSアカウントなので、手動でAWSControlTowerExecutionロールを作る必要があります。
Control Towerの統制 - コンプライアンスに準拠しないS3バケットの検知
Control TowerのControls libraryから有効化する
しばらくするとControl TowerのダッシュボードにNoncompliant resourceとして表示される
ルートユーザーとしてのアクションを許可しない
同じくControls libraryから有効化する
ルートユーザーに対してMFAを自動化することはできず、手動設定は面倒であるため、ルートアクションを完全にブロックする。
サンドボックスアカウントの予算制限 - 予算超過時にSCPによりEC2作成・実行をできなくする
Control TowerのアカウントのOrganizationsでSCPを作成する。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ec2:Run*",
"ec2:Start*",
"ec2:Create*"
],
"Resource": "*"
}
]
}
予算超過時に、AWS Budgetsがさきほど作成したSCPを適用するための、ロールを作成する
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:AttachGroupPolicy",
"iam:AttachRolePolicy",
"iam:AttachUserPolicy",
"iam:DetachGroupPolicy",
"iam:DetachRolePolicy",
"iam:DetachUserPolicy",
"organizations:AttachPolicy",
"organizations:DetachPolicy"
],
"Resource": "*"
}
]
}
最後に、Budgetsを新規作成し、予算超過時のアクションを設定すればOK
感想
AWS Control Towerでアカウントを作成する方法は知っていましたが、コンプライアンス非準拠の検知方法や、予算超過時のSCPによる予防的統制について学ぶことが出来ました。